package com.levi.juc.cas;

import java.util.concurrent.atomic.AtomicInteger;

/**
 * CAS  Compare And  Swap  比较并交换   底层并发原理
 * 底层使用的是do ...  while自旋锁，不断地判断，如果是期望值就返回ture，不是期望值就返回false就一直判断，比较耗时间
 */
public class CasTest {
    public static void main(String[] args) {
        AtomicInteger atomicInteger = new AtomicInteger(2020);
        System.out.println(atomicInteger.compareAndSet(2020, 2021));
        System.out.println(atomicInteger);
        atomicInteger.incrementAndGet();
        System.out.println(atomicInteger.compareAndSet(2020, 2021));
        System.out.println(atomicInteger);
    }
}
